﻿using System;
using System.Collections.Generic;
using System.Text;

namespace SupervisedSpeakerRecognition
{
    /// <summary>
    /// Class for saving the inputs and outputs for each stage of the process
    /// </summary>
    public class FeatureExtractorData
    {
        //************************  Private Fields  *******************************// 
        private String wavFileName;
        private double[] wavData;
        private double[] preEmpData;
        private double[][] framingData;
        private double[][] fftData;
        private double[] fftDataOneDim;
        private double[][] melScaleData;
        private double[][] logEnergyData;
        private double[][] ifftData;
        private double[] ifftDataOneDim;
        private double[] averageData;
        private String group;
        //************************  Constructors    *******************************// 
        public FeatureExtractorData()
        {
        }

        public FeatureExtractorData(string file)
        {
            wavFileName = file;
        }
        //************************  Public Properties  ****************************// 
        public String WavFileName
        {
            get { return wavFileName; }
            set { wavFileName = value; }
        }
        public String Group
        {
            get { return group; }
            set { group = value; }
        }
        public double[] WavData
        {
            get { return wavData; }
            set { wavData = value; }
        }

        public double[] FftDataOneDim
        {
            get { return fftDataOneDim; }
            set { fftDataOneDim = value; }
        }

        public double[] OutPut
        {
            get { return WavData; }
            set { WavData = value; }
        }

        public double[] PreEmpData
        {
            get { return preEmpData; }
            set { preEmpData = value; }
        }

        public double[][] FramingData
        {
            get { return framingData; }
            set { framingData = value; }
        }

        public double[][] FftData
        {
            get { return fftData; }
            set { fftData = value; }
        }

        public double[][] MelScaleData
        {
            get { return melScaleData; }
            set { melScaleData = value; }
        }

        public double[][] LogEnergyData
        {
            get { return logEnergyData; }
            set { logEnergyData = value; }
        }

        public double[][] IfftData
        {
            get { return ifftData; }
            set { ifftData = value; }
        }

        public double[] IfftDataOneDim
        {
            get { return ifftDataOneDim; }
            set { ifftDataOneDim = value; }
        }

        public double[] AverageData
        {
            get { return averageData; }
            set { averageData = value; }
        }
    }
}
